#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
//int main(){
////int fd = open("./log.txt", O_WRONLY | O_CREAT | O_TRUNC,0664); 
//  int fd = open("./log.txt", O_RDWR);
//  if(fd < 0){
//    perror("open");
//    return 1;
//  }
//  //dup2(fd,1);//本来应该显示到显示器的内容，写入到文件
//  dup2(fd,0);//新文件的文件描述符覆盖标准输入
//
//  char buffer[1024];
//  scanf("%s",buffer);//本该向标准输入中读取，现在向文件中读取内容
//  printf("%s\n",buffer);
//
//  //printf("hello printf!!\n");
//  //fprintf(stdout,"hello fprintf\n");
//  //fputs("hello fputs\n",stdout);
//  return 0;
//}

//int main(){
//  printf("stdin --> %d\n",stdin->_fileno);
//  printf("stdout --> %d\n",stdout->_fileno);
//  printf("stderr --> %d\n",stderr->_fileno);
//  
//  FILE* fp = fopen("./log.txt","r");
//  if(fp == NULL){
//    perror("fopen");
//    return 1;
//  }
//  printf("fp --> %d\n",fp->_fileno);
//  
//  return 0;
//}


//int main(){ 
////输入重定向 
//  close(0); 
//  int fd = open("./log.txt",O_RDONLY); 
//  printf("fd: %d\n",fd); 
//  char line[128]; 
//  while(fgets(line, sizeof(line) - 1, stdin)){
//    printf("%s", line); 
//  } 
//  return 0; 
//}


int main(){
  close(1);
  int fd = open("./log.txt",O_CREAT | O_WRONLY, 0644);
  printf("fd:%d\n",fd);

  fprintf(stdout,"hello World!\n");
  fprintf(stdout,"hello World!\n");
  fprintf(stdout,"hello World!\n");
  fprintf(stdout,"hello World!\n");
  close(fd);
  return 0;
}



//int main(){
//  char buff[64];
//  ssize_t s = read(0,buff,sizeof(buff));
//  buff[s - 1] = 0;//将最后一个回车（\n）清成0
//  printf("echo# %s\n",buff);
//
//  //const char* msg = "hello linux!\n";
//  //write(2,msg,strlen(msg));
//  //write(2,msg,strlen(msg));
//  //write(2,msg,strlen(msg));
//  //write(2,msg,strlen(msg));
//  //return 0;
//}





//int main(){
//
//  int fd = open("./log.txt",O_RDONLY);
//  if(fd < 0){
//    perror("open");
//    return 1;
//  }
//  char buffer[1024];
//  ssize_t s = read(fd,buffer,sizeof(buffer)-1);
//  if(s > 0){
//    buffer[s] = 0;
//    printf("%s\n",buffer);
//  }
//  close(fd);
//
// // int fd = open("./log.txt", O_CREAT | O_WRONLY, 0644);
// // if(fd < 0){
// //   perror("open");
// //   return 1;
// // }
// // 
// // //写文件
// // const char* msg = "hello linux\n";
// // int cnt =5;
// // while(cnt--){
// //   write(fd,msg,strlen(msg));//不需要写入\0。因为\0作为字符串的结束，只是C的规定
// // }
// // close(fd);
//  return 0;
//}
